wInsight DTD

This is a sample of the wInsight DTD.

<!--
WINST.DTD - Document Type Definition file for wInsight 6.x database
-->
<!ELEMENT wInsightDb (
Columns?,
Units?,
Structures?,
Weights?,
Thresholds?,
Calendars?,
CalendarDets?,
Contractors?,
Contracts?,
Periods?,
Cprs?,
EacMrs?,
BaselineChgs?,
Milestones?,
Elements?,
EarnedValues?,
Manpowers?,
FutureEtcs?,
NarrPers?,
NarrElems?,
NarrElemPers?,
EuwtLinks?,
Projects?,
Tasks?,
TaskLinks?,
TaskPreds?,
Users?,
UserContracts?,
FundTypes?,
ClinTypes?,
CfsrBlock12Types?,
Block11s?,
Block12s?,
CfsrThresholds?,
Cfsrs?,
CfsrNarrs?,
OmbMilestones?,
ElemLinks?
)>
<!--
Enter version as "6,3,1,0" for documents matching this DTD.
-->
<!ATTLIST wInsightDb version CDATA #REQUIRED>
<!--
Column
-->
<!ELEMENT Columns (Column+)>
<!ELEMENT Column (
TableID,
DataType,
Length,
SQL,
Alias,
Formula?
)>
<!--
Prefix ID attribute with 'col' - e.g. col1, col2, etc.
TableID: enum { Contract=1, Period=2, Element=4, EarnedValue=5, Project=6, Task=7, FutureEtc=9 };
Note: The combination of TableID and ColName must be unique.
DataType(Length): enum { short(2)=1, long(4), double(8), date(8), str(1-255) }
SQL: SQL statement for field (e.g. Table.Field
Alias: Display name for ColName (optional)
Formula: SQL expression for column (optional)
-->
<!ATTLIST Column id ID #REQUIRED>
<!ELEMENT TableID (#PCDATA)>
<!ELEMENT ColName (#PCDATA)>
<!ELEMENT DataType (#PCDATA)>
<!ELEMENT Length (#PCDATA)>
<!ELEMENT SQL (#PCDATA)>
<!ELEMENT Alias (#PCDATA)>
<!ELEMENT Formula (#PCDATA)>
<!--
Unit 
-->
<!ELEMENT Units (Unit+)>
<!ELEMENT Unit (
UnitName,
Scale?,
Symbol?,
Prefix?,
Pad?,
UnitSeq?,
RptSeq?
)>
<!--
Prefix ID attribute with 'un' - e.g. un1, un2, etc.
Standard units are:
Dollars: un1
Hours: un2
EQP: un3
-->
<!ATTLIST Unit id ID #REQUIRED>
<!--
Name is unit name, plural, e.g., Dollars, Hours, EQP
Scale: a power of 10, e.g. scale="3" defines values in thousands
Symbol: e.g. $ for Dollars, H for Hours
Prefix: 'F' for following, e.g '10H', 'T' for leading, e.g. '$100'
Pad: 'T' if symbol is separated from value, e.g. '100 H', 'F' if not: '$100'.
UnitSeq: Order to display units in Units menu, or zero (0) to hide.
RptSeq: Order to display units in Element of Cost report, or zero (0) to hide.
-->
<!ELEMENT UnitName (#PCDATA)>
<!ELEMENT Scale (#PCDATA)>
<!ELEMENT Symbol (#PCDATA)>
<!ELEMENT Prefix (#PCDATA)>
<!ELEMENT Pad (#PCDATA)>
<!ELEMENT UnitSeq (#PCDATA)>
<!ELEMENT RptSeq (#PCDATA)>
<!--
Structure
-->
<!ELEMENT Structures (Structure+)>
<!ELEMENT Structure (
StruName,
StruDesc?
)>
<!--
Prefix ID with 'st' - e.g. st1, st2, etc.
Standard structures are:
WBS: st1
OBS: st2
Indirect: st3
-->
<!ATTLIST Structure id ID #REQUIRED>
<!ELEMENT StruName (#PCDATA)>
<!ELEMENT StruDesc (#PCDATA)>
<!--
Weight
-->
<!ELEMENT Weights (Weight+)>
<!ELEMENT Weight (
WeightDesc,
CostWt,
PerfFctr
)>
<!--
Prefix ID attribute with 'wt' - e.g. wt1, wt2, etc.
-->
<!ATTLIST Weight id ID #REQUIRED>
<!ELEMENT WeightDesc (#PCDATA)>
<!--
CostWt is a number between 0 and 100, inclusive
PerfFctr is Cost/Schedule weighting (default 1.0)
-->
<!ELEMENT CostWt (#PCDATA)>
<!ELEMENT PerfFctr (#PCDATA)>
<!--
Threshold
-->
<!ELEMENT Thresholds (Threshold+)>
<!ELEMENT Threshold (
ThreshDesc,
ThreshSet,
ThreshSet,
ThreshSet,
ThreshSet
)>
<!--
Prefix ID attribute with 'th' - e.g. th1, th2, etc.
-->
<!ATTLIST Threshold id ID #REQUIRED>
<!ELEMENT ThreshDesc (#PCDATA)>
<!ELEMENT ThreshSet (
PctCmp,
CurCostD?,
CurCostP?,
CurSchD?,
CurSchP?,
CumCostD?,
CumCostP?,
CumSchD?,
CumSchP?,
VacD?,
VacP?,
AndOr?
)>
<!ATTLIST ThreshSet range (1 | 2 | 3 | 4) #REQUIRED>
<!--
ThreshSet applies from % complete range of previous (or 0) to 
% complete value given in PctCmp field. Default is 97, 98, 99, 100.
This creates ranges of 0-97, 97-98, 98-99, 99-100.
-->
<!ELEMENT PctCmp (#PCDATA)>
<!ELEMENT CurCostD (#PCDATA)>
<!ELEMENT CurCostP (#PCDATA)>
<!ELEMENT CurSchD (#PCDATA)>
<!ELEMENT CurSchP (#PCDATA)>
<!ELEMENT CumCostD (#PCDATA)>
<!ELEMENT CumCostP (#PCDATA)>
<!ELEMENT CumSchD (#PCDATA)>
<!ELEMENT CumSchP (#PCDATA)>
<!ELEMENT VacD (#PCDATA)>
<!ELEMENT VacP (#PCDATA)>
<!--
AndOr: 'A', 'O', or 'N'
AND = exceeds Cost AND Sch thresh; OR = Cost OR Sch thresh; NOT = ignore
-->
<!ELEMENT AndOr (#PCDATA)>
<!--
Calendar
-->
<!ELEMENT Calendars (Calendar+)>
<!ELEMENT Calendar (
CalDesc,
DateFmt?,
FyEnd?
)>
<!--
Prefix ID attribute with 'cal' - e.g. cal1, cal2, etc.
-->
<!ATTLIST Calendar id ID #REQUIRED>
<!ELEMENT CalDesc (#PCDATA)>
<!--
DateFmt specifies how periods should be displayed.
Default is "!%b %y", e.g. JUN 99.
%d  Day of month (01-31)
%m  Two digit month (01-12)
%b  Month abbreviation (Jan, Feb, Mar, ...)
%y  Two digit year (00 - 99)
%Y  Four digit year (1999, 2000, ...)
%f  Two-digit fiscal year
%F  Four digit fiscal year 
%q  Quarter number (1-4)
%p  Period number (see below)
! (prefix) Use upper case (JUN vs. Jun)
-->
<!ELEMENT DateFmt (#PCDATA)>
<!--
Specifies FY end date in mm.dd format. The default value
is December 31st, represented as '12.31'.
-->
<!ELEMENT FyEnd (#PCDATA)>
<!-- 
CalendarDet
--> 
<!ELEMENT CalendarDets (CalendarDet+)>
<!ELEMENT CalendarDet (
EndDate,
PerNum?, 
ReportPer?,
HrsInPer?,
AltDate?,
FeeLoadSp?,
FeeLoadA?,
FeeLoadEtc?,
OhLoadSp?,
OhLoadA?,
OhLoadEtc?,
ComLoadSp?,
ComLoadA?,
ComLoadEtc?,
GaLoadSp?,
GaLoadA?,
GaLoadEtc?
)>
<!--
cal_id must refer to a previously defined Calendar
-->
<!ATTLIST CalendarDet cal_id IDREF #REQUIRED>
<!ELEMENT EndDate (#PCDATA)>
<!--
PerNum is the period number in the current fiscal year. By default,it is the ordinal value of the current month (1-12).
-->
<!ELEMENT PerNum (#PCDATA)>
<!--
'T' if period is a reporting period, 'F' otherwise
-->
<!ELEMENT ReportPer (#PCDATA)>
<!ELEMENT HrsInPer (#PCDATA)>
<!ELEMENT AltDate (#PCDATA)>
<!ELEMENT FeeLoadSp (#PCDATA)>
<!ELEMENT FeeLoadA (#PCDATA)>
<!ELEMENT FeeLoadEtc (#PCDATA)>
<!ELEMENT OhLoadSp (#PCDATA)>
<!ELEMENT OhLoadA (#PCDATA)>
<!ELEMENT OhLoadEtc (#PCDATA)>
<!ELEMENT ComLoadSp (#PCDATA)>
<!ELEMENT ComLoadA (#PCDATA)>
<!ELEMENT ComLoadEtc (#PCDATA)>
<!ELEMENT GaLoadSp (#PCDATA)>
<!ELEMENT GaLoadA (#PCDATA)>
<!ELEMENT GaLoadEtc (#PCDATA)>
<!--
Contractor
-->
<!ELEMENT Contractors (Contractor+)> 
<!ELEMENT Contractor (CtrName, Abbr?, Address?, Locator?)>
<!--
Prefix ID attribute with 'ctr' - e.g. ctr1, ctr2, etc.
-->
<!ATTLIST Contractor id ID #REQUIRED>
<!ELEMENT CtrName (#PCDATA)>
<!ELEMENT Abbr (#PCDATA)>
<!ELEMENT Address (Addr1?, Addr2?, City?, State?, Country?, Zip?)>
<!ELEMENT Addr1 (#PCDATA)>
<!ELEMENT Addr2 (#PCDATA)>
<!ELEMENT City (#PCDATA)>
<!ELEMENT State (#PCDATA)>
<!ELEMENT Zip (#PCDATA)>
<!ELEMENT Country (#PCDATA)>
<!--
Locator IDType & IDCode values:
1 = D-U-N-S Number
9 = D-U-N-S + 4 
10 = DOD Address Code
-->
<!ELEMENT Locator (IDType, IDCode)>
<!ELEMENT IDType (#PCDATA)>
<!ELEMENT IDCode (#PCDATA)>
<!--
Contract
-->
<!ELEMENT Contracts (Contract+)>
<!ELEMENT Contract (
ContrName,
ContrNum?,
ContrType?,
ProgName?,
ProgNum?,
ProgType?,
CtrID?,
SecurityText?,
RDQty?,
ProdQty?,
Manager?,
Analyst?,
ProgOffName?,
ProgOffSym?,
RptType?,
NegCost?,
TgtPrice?,
TgtFeeDol?,
TgtFeePct?,
ContrCeiling?,
MinFee?,
MaxFee?,
FixedFee?,
OrigAwdFee?,
NonFeeBearCost?,
ShareAbove?,
ShareBelow?,
ChgPct?,
RedPct?,
YellowPct?,
GreenPct?,
ContrDefinit?,
ContrStart?,
WorkStart?,
LastItemDlv?,
ContrCompl?,
UserSym?,
CaoSym?,
CtrSym?,
RecalcFlags?,
SysDateID?,
CalID?,
F3UnitID?,
F4UnitID?,
F4StruID?,
CustID?,
CprDid?,
UserDefValue*
)>
<!--
Prefix ID attribute with 'cc' - e.g. cc1, cc2, etc.
-->
<!ATTLIST Contract id ID #REQUIRED>
<!ELEMENT ContrName (#PCDATA)>
<!ELEMENT ContrNum (#PCDATA)>
<!--
ContrType values are limited to 10 characters
CW = Cost Plus Award Fee
CX = Cost Plus Fixed Fee
CY = Cost Plus Incentive Fee
FD = Fixed Price Redetermination
FE = Fixed Price with Escalation
FI = Fixed Price Incentive
FR = Firm Fixed Price
TM = Time and Materials
OC = Other Contract Type (enter)
-->
<!ELEMENT ContrType (#PCDATA)>
<!ELEMENT ProgName (#PCDATA)>
<!ELEMENT ProgNum (#PCDATA)>
<!--
ProgType values are limited to 10 characters
RDT&E = Research, Development, Test and Evaluation
PROD = Production
RDT&E+P = Both RDT&E and Production
AD = Advanced Design
DEMVAL = Demonstration Validation
FSD = Full Scale Development
EMD = Engineering and Manufacturing Development
CONEXP = Concept Exploration
DEPLOY = Deployment
LRIP = Low Rate Initial Production
Other = (specify)
-->
<!ELEMENT ProgType (#PCDATA)> 	  
<!--
CtrID must refer to an existing Contractor ('ctr1', 'ctr2', etc.)
CustID must refer to an existing Contractor ('ctr1', 'ctr2', etc.)
-->
<!ELEMENT CtrID EMPTY>
<!ATTLIST CtrID ctr_id IDREF #REQUIRED>
<!ELEMENT CustID EMPTY>
<!ATTLIST CustID ctr_id IDREF #REQUIRED>
<!--
0 for Aug 1996 DID
1 for Mar 2005 DID
-->
<!ELEMENT CprDid (#PCDATA)>
<!--
CalID must refer to an existing Calendar ('cal1', 'cal2', etc.)
-->
<!ELEMENT CalID EMPTY>
<!ATTLIST CalID cal_id IDREF #REQUIRED>
<!--
SecurityText values are limited to 30 characters, e.g.
Competition Sensitive
Unclassified
Confidential
Secret
Top Secret
-->
<!ELEMENT SecurityCode (#PCDATA)>
<!ELEMENT SecurityText (#PCDATA)>
<!ELEMENT RDQty (#PCDATA)>
<!ELEMENT ProdQty (#PCDATA)>
<!ELEMENT Manager (#PCDATA)>
<!ELEMENT Analyst (#PCDATA)>
<!ELEMENT ProgOffName (#PCDATA)>
<!ELEMENT ProgOffSym (#PCDATA)>
<!--
enum RptType { CPR, C/SSR }
When generating a C/SSR file, the OBS (i.e., Element Type = Func),
and Manpower elements  can be omitted, as well as all Cpr elements
after 'ShareBelow'.
-->
<!ELEMENT RptType (#PCDATA)>
<!--
Monetary values should be entered in the units specified
by F3UnitID
-->
<!ELEMENT NegCost (#PCDATA)>
<!ELEMENT TgtPrice (#PCDATA)>
<!ELEMENT TgtFeeDol (#PCDATA)>
<!ELEMENT TgtFeePct (#PCDATA)>
<!ELEMENT ContrCeiling (#PCDATA)>
<!ELEMENT MinFee (#PCDATA)>
<!ELEMENT MaxFee (#PCDATA)>
<!ELEMENT FixedFee (#PCDATA)>
<!ELEMENT OrigAwdFee (#PCDATA)>
<!ELEMENT NonFeeBearCost (#PCDATA)>
<!ELEMENT ShareAbove (#PCDATA)>
<!ELEMENT ShareBelow (#PCDATA)>
<!ELEMENT ChgPct (#PCDATA)>
<!ELEMENT RedPct (#PCDATA)>
<!ELEMENT YellowPct (#PCDATA)>
<!ELEMENT GreenPct (#PCDATA)>
<!ELEMENT ContrDefinit (#PCDATA)>
<!ELEMENT ContrStart (#PCDATA)>
<!ELEMENT WorkStart (#PCDATA)>
<!ELEMENT LastItemDlv (#PCDATA)>
<!ELEMENT ContrCompl (#PCDATA)>
<!ELEMENT UserSym (#PCDATA)>
<!ELEMENT CaoSym (#PCDATA)>
<!ELEMENT CtrSym (#PCDATA)>
<!ELEMENT RecalcFlags (#PCDATA)>
<!--
Specifies the ID of the most recent period of data (cd1, cd2, etc.)
-->
<!ELEMENT SysDateID EMPTY>
<!ATTLIST SysDateID cd_id IDREF #REQUIRED>
<!--
Specifies the unit ID for Format 3 (Baseline) records
Must refer to an existing Unit
-->
<!ELEMENT F3UnitID  EMPTY>
<!ATTLIST F3UnitID un_id IDREF #REQUIRED>
<!--
Specifies the unit ID for Format4 (Manpower) records
Must refer to an existing Unit
-->
<!ELEMENT F4UnitID  EMPTY> 
<!ATTLIST F4UnitID un_id IDREF #REQUIRED>
<!--
Specifies the structure ID for Format4 (Manpower) records
Must refer to an existing Structure
-->
<!ELEMENT F4StruID  EMPTY>
<!ATTLIST F4StruID st_id IDREF #REQUIRED>
<!--
col_id = ColumnID of associated Column
-->
<!ELEMENT UserDefValue (#PCDATA)>
<!ATTLIST UserDefValue col_id IDREF #REQUIRED>
<!--
Period
-->
<!ELEMENT Periods (Period+)>
<!ELEMENT Period (
EndDate,
CprID?,
PerNum?,
OrdVal?,
Alias?,
UserDefValue*
)>
<!--
Prefix ID attribute with 'cd' - e.g. cd1, cd2, etc.
cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)
-->
<!ATTLIST Period
cc_id IDREF #REQUIRED
id ID #REQUIRED
>
<!--
Ordinal number of period from most recent (1) to earliest.
-->
<!ELEMENT OrdVal (#PCDATA)>
<!--
cd_id must refer to an existing Period (cd1, cd2, etc.)
-->
<!ELEMENT CprID EMPTY>
<!ATTLIST CprID cd_id IDREF #REQUIRED>
<!ELEMENT Cprs (Cpr+)>
<!ELEMENT Cpr (
RptStartDt?,
RptEndDt?,
LastContrChg?,
TotalNegChg?,
LastOTB?,
CBB?,
TAB?,
FundsObl?,
TgtFeeDol?,
TgtFeePct?,
LastItemDlv?,
Incentives?,
ApprName?,
ApprTitle?,
ApprOrg?,
SubmDate?,
NegCost?,
AuthUnpr?,
TgtPrice?,
EstPrice?,
ContrCeiling?,
EstCeiling?,
TotalAwdFee?,
AwdFeePaid?,
AwdFeeRem?,
ContrCompl?,
PoEstCompl?,
CtrEstCompl?,
EacMin?,
EacML?,
EacMax?,
PoEpc?,
CaoEpc?,
TotalFund?,
MinFee?,
MaxFee?,
FixedFee?,
NonFeeBearCost?,
ShareAbove?,
ShareBelow?,
TFloat?,
FundLimit?,
AmtBilled?,
PmtRcvd?,
BaselineRevNum?,
BaselineRevDate?,
OmbConcur?,
PlanCompl?,
EvmsAppr?,
BCumToDt?,
BCurrent?,
BCurP1?,
BCurP2?,
BCurP3?,
BCurP4?,
BCurP5?,
BCurP6?,
BPer1?,
BPer2?,
BPer3?,
BPer4?,
BToCmp?,
BUndBudg?,
ECumToDt?,
ECurP1?,
ECurP2?,
ECurP3?,
ECurP4?,
ECurP5?,
ECurP6?,
EPer1?,
EPer2?,
EPer3?,
EPer4?,
EToCmp?,
EUndBudg?,
F3Per1?,
F3Per2?,
F3Per3?,
F3Per4?,
F3PerTC?,
F3Txt1?,
F3Txt2?,
F3Txt3?,
F3Txt4?,
F4Per1?,
F4Per2?,
F4Per3?,
F4Per4?,
F4PerTC?,
F4Txt1?,
F4Txt2?,
F4Txt3?,
F4Txt4?
)>
<!--
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
-->
<!ATTLIST Cpr cd_id IDREF #REQUIRED>
<!--
Monetary values should be entered in the units specified
by F3UnitID of the corresponding contract
-->
<!ELEMENT RptStartDt (#PCDATA)>
<!ELEMENT RptEndDt (#PCDATA)>
<!ELEMENT LastContrChg (#PCDATA)>
<!ELEMENT TotalNegChg (#PCDATA)>
<!ELEMENT LastOTB (#PCDATA)>
<!ELEMENT CBB (#PCDATA)>
<!ELEMENT TAB (#PCDATA)>
<!ELEMENT FundsObl (#PCDATA)>
<!ELEMENT Incentives (#PCDATA)>
<!ELEMENT ApprName (#PCDATA)>
<!ELEMENT ApprTitle (#PCDATA)>
<!ELEMENT ApprOrg (#PCDATA)>
<!ELEMENT SubmDate (#PCDATA)>
<!ELEMENT AuthUnpr (#PCDATA)>
<!ELEMENT EstPrice (#PCDATA)>
<!ELEMENT EstCeiling (#PCDATA)>
<!ELEMENT TotalAwdFee (#PCDATA)>
<!ELEMENT AwdFeePaid (#PCDATA)>
<!ELEMENT PoEstCompl (#PCDATA)>
<!ELEMENT CtrEstCompl (#PCDATA)>
<!ELEMENT EacMin (#PCDATA)>
<!ELEMENT EacML (#PCDATA)>
<!ELEMENT EacMax (#PCDATA)>
<!ELEMENT PoEpc (#PCDATA)>
<!ELEMENT CaoEpc (#PCDATA)>
<!ELEMENT TotalFund (#PCDATA)>
<!ELEMENT BCumToDt (#PCDATA)>
<!ELEMENT BCurrent (#PCDATA)>
<!ELEMENT BCurP1 (#PCDATA)>
<!ELEMENT BCurP2 (#PCDATA)>
<!ELEMENT BCurP3 (#PCDATA)>
<!ELEMENT BCurP4 (#PCDATA)>
<!ELEMENT BCurP5 (#PCDATA)>
<!ELEMENT BCurP6 (#PCDATA)>
<!ELEMENT BPer1 (#PCDATA)>
<!ELEMENT BPer2 (#PCDATA)>
<!ELEMENT BPer3 (#PCDATA)>
<!ELEMENT BPer4 (#PCDATA)>
<!ELEMENT BToCmp (#PCDATA)>
<!ELEMENT BUndBudg (#PCDATA)>
<!ELEMENT ECumToDt (#PCDATA)>
<!ELEMENT ECurP1 (#PCDATA)>
<!ELEMENT ECurP2 (#PCDATA)>
<!ELEMENT ECurP3 (#PCDATA)>
<!ELEMENT ECurP4 (#PCDATA)>
<!ELEMENT ECurP5 (#PCDATA)>
<!ELEMENT ECurP6 (#PCDATA)>
<!ELEMENT EPer1 (#PCDATA)>
<!ELEMENT EPer2 (#PCDATA)>
<!ELEMENT EPer3 (#PCDATA)>
<!ELEMENT EPer4 (#PCDATA)>
<!ELEMENT EToCmp (#PCDATA)>
<!ELEMENT EUndBudg (#PCDATA)>
<!ELEMENT F3Per1 (#PCDATA)>
<!ELEMENT F3Per2 (#PCDATA)>
<!ELEMENT F3Per3 (#PCDATA)>
<!ELEMENT F3Per4 (#PCDATA)>
<!ELEMENT F3PerTC (#PCDATA)>
<!ELEMENT F3Txt1 (#PCDATA)>
<!ELEMENT F3Txt2 (#PCDATA)>
<!ELEMENT F3Txt3 (#PCDATA)>
<!ELEMENT F3Txt4 (#PCDATA)>
<!ELEMENT F4Per1 (#PCDATA)>
<!ELEMENT F4Per2 (#PCDATA)>
<!ELEMENT F4Per3 (#PCDATA)>
<!ELEMENT F4Per4 (#PCDATA)>
<!ELEMENT F4PerTC (#PCDATA)>
<!ELEMENT F4Txt1 (#PCDATA)
<!ELEMENT F4Txt2 (#PCDATA)>
<!ELEMENT F4Txt3 (#PCDATA)>
<!ELEMENT F4Txt4 (#PCDATA)>
<!ELEMENT TFloat (#PCDATA)>
<!ELEMENT FundLimit (#PCDATA)>
<!ELEMENT AmtBilled (#PCDATA)>
<!ELEMENT PmtRcvd (#PCDATA)>
<!ELEMENT BaselineRevNum (#PCDATA)>
<!ELEMENT BaselineRevDate (#PCDATA)>
<!ELEMENT OmbConcur (#PCDATA)>
<!ELEMENT PlanCompl (#PCDATA)>
<!ELEMENT EvmsAppr (#PCDATA)>
<!--
EacMr
-->
<!ELEMENT EacMrs (EacMr+)>
<!ELEMENT EacMr (
PoEac?,
PoMr?,
CaoEac?,
CaoMr?,
ReprogSch?
)>
<!--
cd_id must refer to an existing Period (cd1, cd2, etc.)
un_id must refer to an existing Unit (un1, un2, etc.)
-->
<!ATTLIST EacMr
cd_id IDREF #REQUIRED
un_id IDREF #REQUIRED
<!ELEMENT PoEac (#PCDATA)>
<!ELEMENT PoMr (#PCDATA)>
<!ELEMENT CaoEac (#PCDATA)>
<!ELEMENT CaoMr (#PCDATA)>
<!ELEMENT ReprogSch (#PCDATA)>
<!--
BaselineChg
Omit this element when generating a C/SSR file.
-->
<!ELEMENT BaselineChgs (BaselineChg+)>
<!ELEMENT BaselineChg (
ChgDesc,
ChgValue
)>
<!--
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
-->
<!ATTLIST BaselineChg cd_id IDREF #REQUIRED>
<!ELEMENT ChgDesc (#PCDATA)>
<!ELEMENT ChgValue (#PCDATA)>
<!--
Milestones
-->
<!ELEMENT Milestones (Milestone+)>
<!ELEMENT Milestone (
MilesDesc,
Baseline?,
Actual?,
Scheduledz
)>
<!--
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
--> 
<!ATTLIST Milestone cd_id IDREF #REQUIRED>
<!ELEMENT MilesDesc (#PCDATA)>
<!ELEMENT Baseline (#PCDATA)>
<!ELEMENT Actual (#PCDATA)>
<!ELEMENT Scheduled (#PCDATA)>
<!--
Element
-->
<!ELEMENT Elements (Element+)>
<!ELEMENT Element(
WbsNum,
ElemDesc?,
ElemLevel?,
ElemHier?
ParentID?,
ElemSeq?,
NumChild?,
SortVal?,
LinkVal?,
ElemType?,
EVM?,
LongDesc?,
NAFlag?,
ProjOff?,
OffSym?,
OffExt?,
RiskLevel?,
CtrID?,
Email?,
VarState?,
VarRejectReason?,
VarLastTimeStamp?,
VarStateAw?,
UserDefValue*
)>
<!--
Prefix ID attribute with 'ce' - e.g. ce1, ce2, etc.
cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)
st_id must refer to an existing Structure ('st1', 'st2', etc.)
-->
<!ATTLIST Element
id #REQUIRED
cc_id IDREF #REQUIRED 
st_id IDREF #REQUIRED
>
<!--
WbsNum is limited to 50 characters. The following WBS Numbers are reserved:
[OH] - Overhead
[COM] - Cost of Money
[G&A] - General And Administrative
[UB] - Undistributed Budget
[MR] - Management Reserve 
These WBS elements are members of the "Indirect" structure (st_id="st3")
and are (formally) children of the level 1 WBS element (ref: ParentID below).
The following WBS Number is also reserved. It is generated automatically during the recalculation process and need not be exported. If exported, its cc_id and st_id attributes should reflect the contract and structure to which it belongs. Similarly, its ParentID will be that of the level 1 element of the structure to which it belongs.
[PMB] - Peformance Measurement Baseline
-->
<!ELEMENT WbsNum (#PCDATA)>
<!ELEMENT ElemDesc (#PCDATA)>
<!--
ElemLevel may be omitted if ParentID is supplied.
Required for Level 1 element of each structure.
-->
<!ELEMENT ElemLevel (#PCDATA)>
<!--
ElemHier is the ordinal position of element in tree (hierarchical sort).
This is a calculated value and may be omitted.
-->
<!ELEMENT ElemHier (#PCDATA)>
<!--
ParentID is required except for Level 1 elements.
ce_id must refer to a previously defined element.
-->
<!ELEMENT ParentID EMPTY>
<!ATTLIST ParentID ce_id IDREF #REQUIRED>
<!--
If supplied, use the values below for the reserved elements.
ElemSeq: { OH=9994, COM=9995, G&A=9996, UB=9997, PMB=9998, MR=9999 }
-->
<!ELEMENT ElemSeq (#PCDATA)>
<!ELEMENT NumChild (#PCDATA)>
<!ELEMENT SortVal (#PCDATA)>
<!ELEMENT LinkVal (#PCDATA)>
<!ELEMENT ElemType (#PCDATA)>
<!ELEMENT EVM (#PCDATA)>
<!ELEMENT LongDesc (#PCDATA)>
<!--
For ordinary elements NAFlag = 0 for add, or 1 for non-add into parent.
For [OH], [COM], [G&A], [UB], and [MR] elements, NAFlag can be set on a per-structure basis by setting the bit corresponding to (structure id - 1). For example, NAFlag = 9 is non-add for st_id = 1 and 4 (2^0 + 2^3).
-->
<!ELEMENT NAFlag (#PCDATA)>
<!ELEMENT ProjOff (#PCDATA)>
<!ELEMENT OffSym (#PCDATA)>
<!ELEMENT OffExt (#PCDATA)>
<!--
RiskLevel: 'L', 'M', or 'H' (Low, Medium, High)
-->
<!ELEMENT RiskLevel (#PCDATA)>
<!ELEMENT Email (#PCDATA)>
<!ELEMENT VarState (#PCDATA)>
<!ELEMENT VarRejectReason (#PCDATA)>
<!ELEMENT VarLastUser (#PCDATA)>
<!ELEMENT VarTimeStamp (#PCDATA)>
<!ELEMENT VarStateAw (#PCDATA)>
<!--
EarnedValue
-->
<!ELEMENT EarnedValues (EarnedValue+)>
<!ELEMENT EarnedValue(
BcwsCum?,
BcwpCum?,
AcwpCum?,
Bac?,
Lre?,
BcwsAdj?,
BcwpAdj?,
AcwpAdj?,
ReprogCost?,
ReprogBudg?,
BcwsCur?,
BcwpCur?,
AcwpCur?,
UserEac?,
UserEacMin?,
UserEacMax?,
UserEacPdf?,
MovAvg3?,
MovAvg6?,
CumCpiFc?,
CurCpiFc?,
WtCostSch?,
LinRegr?,
PerfFctr?,
Micom?,
Trends?,
Fmt5Var?,
UserMethod?,
UserMethodMin?,
UserMethodMax?,
CumCpiFcAdj?,
CpiSpiAdj?,
UnfillOrd?,
Number1?,
Number2?,
Number3?,
Number4?,
Number5?,
Number6?,
Number7?,
Number8?,
Number9?,
Number10?,
SvAw?,
CvAw?,
VacAw?,
CpiCum3?,
CpiCum6?,
SpiCum3?,
SpiCum6?,
ReprogSch?,
UserColors?,
UserTrends?,
UserDefValue*
)>
<!--
ce_id must refer to an existing Element ('ce1', 'ce2', etc.)
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
un_id must refer to an existing Unit ('un1', 'un2', etc.)
-->
<!ATTLIST EarnedValue 
ce_id IDREF #REQUIRED
cd_id IDREF #REQUIRED 
un_id IDREF #REQUIRED
>
<!ELEMENT BcwsCum (#PCDATA)>
<!ELEMENT BcwpCum (#PCDATA)>
<!ELEMENT AcwpCum (#PCDATA)>
<!ELEMENT Bac (#PCDATA)>
<!ELEMENT Lre (#PCDATA)>
<!ELEMENT BcwsAdj (#PCDATA)>
<!ELEMENT BcwpAdj (#PCDATA)>
<!ELEMENT AcwpAdj (#PCDATA)>
<!ELEMENT ReprogCost (#PCDATA)>
<!ELEMENT ReprogBudg (#PCDATA)>
<!ELEMENT BcwsCur (#PCDATA)>
<!ELEMENT BcwpCur (#PCDATA)>
<!ELEMENT AcwpCur (#PCDATA)>
<!ELEMENT MovAvg3 (#PCDATA)>
<!ELEMENT MovAvg6 (#PCDATA)>
<!ELEMENT CumCpiFc (#PCDATA)>
<!ELEMENT CurCpiFc (#PCDATA)>
<!ELEMENT WtCostSch (#PCDATA)>
<!ELEMENT LinRegr (#PCDATA)>
<!--
PerfFctr already declared in Weight, where it is a paramenter used in the calculation of this EAC
-->
<!ELEMENT PerfFctr (#PCDATA)>
<!ELEMENT CpiSpi (#PCDATA)>
<!ELEMENT Micom (#PCDATA)>
<!ELEMENT Colors (#PCDATA)>
<!ELEMENT Trends (#PCDATA)>
<!ELEMENT Fmt5Var (#PCDATA)>
<!ELEMENT UserEac (#PCDATA)>
<!ELEMENT UserEacMin (#PCDATA)>
<!ELEMENT UserEacMax (#PCDATA)>
<!ELEMENT CumCpiFcAdj (#PCDATA)>
<!ELEMENT CpiSpiAdj (#PCDATA)>
<!ELEMENT UnfillOrd (#PCDATA)>
<!ELEMENT Number1 (#PCDATA)>
<!ELEMENT Number2 (#PCDATA)>
<!ELEMENT Number3 (#PCDATA)>
<!ELEMENT Number4 (#PCDATA)>
<!ELEMENT Number5 (#PCDATA)>
<!ELEMENT Number6 (#PCDATA)>
<!ELEMENT Number7 (#PCDATA)>
<!ELEMENT Number8 (#PCDATA)>
<!ELEMENT Number9 (#PCDATA)>
<!ELEMENT Number10 (#PCDATA)>
<!ELEMENT SvAw (#PCDATA)>
<!ELEMENT CvAw (#PCDATA)>
<!ELEMENT VacAw (#PCDATA)>
<!ELEMENT CpiCum3 (#PCDATA)>
<!ELEMENT CpiCum6 (#PCDATA)>
<!ELEMENT SpiCum3 (#PCDATA)>
<!ELEMENT SpiCum6 (#PCDATA)>
<!ELEMENT UserColors (#PCDATA)>
<!ELEMENT UserTrends (#PCDATA)>
<!--
UserEacPdf: enum { Uniform=0, Triangular=1, Normal=2, Beta=3 }
-->
<!ELEMENT UserEacPdf (#PCDATA)>
<!ELEMENT UserMethod (#PCDATA)>
<!ELEMENT UserMethodMin (#PCDATA)>
<!ELEMENT UserMethodMax (#PCDATA)>
<!-- 
Manpower
Omit this element when generating a C/SSR file.
-->
<!--
ce_id must refer to an existing Element ('ce1', 'ce2', etc.)
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
rpt is 0 for Manpower LRE, 1 for Manpower BAC 
Labor value should be entered in the units specified by F4UnitID of the corresponding contract
-->
<!ELEMENT Manpowers (Manpower+)>
<!ELEMENT Manpower (
PlanCur?,
PlanCum?,
ActCur?,
ActCum?,
RptType?,
CurP1?,
CurP2?,
CurP3?,
CurP4?,
CurP5?,
CurP6?,
Per1?,
Per2?,
Per3?,
Per4?,
ToCmp?
)>
<!ATTLIST Manpower
ce_id IDREF #REQUIRED
cd_id IDREF #REQUIRED
rpt (0 | 1) #REQUIRED
>
<!ELEMENT PlanCur (#PCDATA)>
<!ELEMENT PlanCum (#PCDATA)>
<!ELEMENT ActCur (#PCDATA)>
<!ELEMENT ActCum (#PCDATA)>
<!ELEMENT CurP1 (#PCDATA)>
<!ELEMENT CurP2 (#PCDATA)>
<!ELEMENT CurP3 (#PCDATA)>
<!ELEMENT CurP4 (#PCDATA)>
<!ELEMENT CurP5 (#PCDATA)>
<!ELEMENT CurP6 (#PCDATA)>
<!ELEMENT Per1 (#PCDATA)>
<!ELEMENT Per2 (#PCDATA)>
<!ELEMENT Per3 (#PCDATA)>
<!ELEMENT Per4 (#PCDATA)>
<!ELEMENT ToCmp (#PCDATA)>
<!--
FutureEtc
-->
<!ELEMENT FutureEtcs (FutureEtc+)>
<!ELEMENT FutureEtc(
EndDate,
Bcws?,
Etc?
UserDefValue*
)>
<!--
ce_id must refer to an existing Element ('ce1', 'ce2', etc.)
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
un_id must refer to an existing Unit ('un1', 'un2', etc.)
-->
<!ATTLIST FutureEtc
ce_id IDREF #REQUIRED 
cd_id IDREF #REQUIRED
un_id IDREF #REQUIRED
<!ELEMENT Etc (#PCDATA)>
<!--
NarrPer
-->
<!ELEMENT NarrPers (NarrPer+)>
<!ELEMENT NarrPer (#PCDATA)>
<!--
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
enum type { PMR=1, OMBC=2, OMBD=3, OMBE=4, OMBF=5 }
-->
<!ATTLIST NarrPer
cd_id IDREF #REQUIRED
type (1 | 2 | 3 | 4 | 5) #REQUIRED
>
<!--
NarrElem
--> 
<!ELEMENT NarrElems (NarrElem+)>
<!ELEMENT NarrElem (#PCDATA)>
<!--
ce_id must refer to an existing Period ('ce1', 'ce2', etc.)
enum type { SOW=1 }
-->
ce_id IDREF #REQUIRED
type (1) #REQUIRED
>
<!--
NarrElemPer
-->
<!ELEMENT NarrElemPers (NarrElemPer+)>
<!ELEMENT NarrElemPer (#PCDATA)>
<!--
ce_id must refer to an existing Element ('ce1', 'ce2', etc.)
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
enum type { Fmt5=1, UserNarr=2, EacNarr=3, EacLink=4 }
-->
<!ATTLIST NarrElemPer
ce_id IDREF #REQUIRED
cd_id IDREF #REQUIRED
type (1 | 2 | 3 | 4) #REQUIRED
<!--
EuwtLink
-->
<!ELEMENT EuwtLinks (EuwtLink+)>
<!ELEMENT EuwtLink (WeightID, ThreshID)>
<!--
ce_id must refer to an existing Element ('ce1', 'ce2', etc.)
un_id must refer to an existing Unit ('un1', 'un2', etc.)
-->
<!ATTLIST EuwtLink 
ce_id IDREF #REQUIRED
un_id IDREF #REQUIRED
>
<!--
Must refer to an existing Weight record (wt1, wt2, etc.)
-->
<!ELEMENT WeightID EMPTY>
<!ATTLIST WeightID wt_id IDREF #REQUIRED>
<!--
Must refer to an existing Threshold record (th1, th2, etc.)
-->
<!ELEMENT ThreshID EMPTY>
<!ATTLIST ThreshID th_id IDREF #REQUIRED>
<!--
Project
-->
<!ELEMENT Projects (Project+)> 
<!ELEMENT Project (
ProjName,
StatusDate,
UserDefValue* 
)>
<!--
Prefix ID attribute with 'prj' - e.g. prj1, prj2, etc. 
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
-->
<!ATTLIST Project
cd_id IDREF #REQUIRED
id ID #REQUIREd
>
<!ELEMENT ProjName (#PCDATA)>
<!ELEMENT StatusDate (#PCDATA)>
<!--
Tasks
-->
<!ELEMENT Tasks (Task+)>
<!ELEMENT Task (
UID, 
TaskName?,
WbsNum?,
IsSummary?,
IsMilestone?, 
IsCritical?,
Duration?,
BaselineDuration?,
ActualDuration?,
RemainingDuration?,
Start?,
Finish?,
ActualStart?,
ActualFinish?,
BaselineStart?,
BaselineFinish?,
EarlyStart?,
EarlyFinish?,
LateStart?,
LateFinish?,
Start1?,
Finish1?,
Start2?,
Finish2?,
Start3?,
Finish3?,
FreeFloat?,
TotalFloat?,
PercentComplete?,
CompleteThrough?,
BaselinePctCmp?,
BaselineCmpThru?,
Slip?,
SlipVal?,
FloatVal?,
NumSlips?,
ColorCode?,
LongestPath?,
LongestPath1?,
LongestPath2?,
LongestPath3?,
FreeFloat1?,
FreeFloat2?, 
FreeFloat3?,
TotalFloat1?,
TotalFloat2?,
TotalFloat3?,
Slip1?,
Slip2?,
Slip3?,
Critical1?,
Critical2?, 
Critical3?,
UserDefValue* 
)>
<!--
Prefix ID attribute with 't' - e.g. t1, t2, etc. 
prj_id must refer to an existing Project ('prj1', 'prj2', etc.)
-->
<!ATTLIST Task
id  ID  #REQUIRED
prj_id  IDREF #REQUIRED 
>
<!-- 
UID is the schedule's unique ID for the task
-->
<!ELEMENT UID (#PCDATA)>
<!ELEMENT TaskName (#PCDATA)>
<!-- 
For next 3 fields: enum { true='T', false='F' }
-->
<!ELEMENT IsMilestone (#PCDATA)>
<!ELEMENT IsSummary (#PCDATA)>
<!ELEMENT IsCritical (#PCDATA)>
<!--
Enter durations as text in desired format, e.g. 10d
Enter start/finish dates in CCYYMMDD format
-->
<!ELEMENT Duration (#PCDATA)> 
<!ELEMENT BaselineDuration (#PCDATA)> 
<!ELEMENT ActualDuration (#PCDATA)>
<!ELEMENT RemainingDuration (#PCDATA)>
<!ELEMENT Start (#PCDATA)> 
<!ELEMENT Finish (#PCDATA)> 
<!ELEMENT ActualStart (#PCDATA)> 
<!ELEMENT ActualFinish (#PCDATA)>
<!ELEMENT BaselineStart (#PCDATA)>
<!ELEMENT BaselineFinish (#PCDATA)>
<!ELEMENT EarlyStart (#PCDATA)>
<!ELEMENT EarlyFinish (#PCDATA)>
<!ELEMENT LateStart (#PCDATA)>
<!ELEMENT LateFinish (#PCDATA)>
<!ELEMENT Start1 (#PCDATA)>
<!ELEMENT Finish1 (#PCDATA)>
<!ELEMENT Start2 (#PCDATA)>
<!ELEMENT Finish2 (#PCDATA >
<!ELEMENT Start3 (#PCDATA)>
<!ELEMENT Finish3 (#PCDATA)>
<!--
Enter FreeFloat and TotalFloat as text in format used by scheduling system
-->
<!ELEMENT FreeFloat (#PCDATA)>
<!ELEMENT TotalFloat (#PCDATA)>
<!ELEMENT PercentComplete (#PCDATA)>
<!ELEMENT CompleteThrough (#PCDATA)>
<!ELEMENT BaselinePctCmp (#PCDATA)>
<!ELEMENT BaselineCmpThru (#PCDATA)>
<!--
Enter Slip as text in format used by scheduling system
-->
<!ELEMENT Slip (#PCDATA)>
<!--
Enter slip from baseline and total float as numeric values in days
-->
<!ELEMENT SlipVal (#PCDATA)>
<!ELEMENT FloatVal (#PCDATA)>
<!--
Enter number of slips from baseline compared to 3 prior periods (0-3)(Can be calculated after import by schedule viewer)
-->
<!ELEMENT NumSlips (#PCDATA)> 
<!--
enum { red='R', yellow='Y', green='G' } (Can be calculated after import by schedule viewer)
-->
<!ELEMENT ColorCode (#PCDATA)>
<!--
Enter 'T' if the task is on the longest path through the schedule, 'F' otherwise
-->
<!ELEMENT LongestPath (#PCDATA)>
<!ELEMENT LongestPath1 (#PCDATA)>
<!ELEMENT LongestPath2 (#PCDATA)>
<!ELEMENT LongestPath3 (#PCDATA)>
<!--
Enter as text in the format used by the scheduling system
-->
<!ELEMENT FreeFloat1 (#PCDATA)>
<!ELEMENT FreeFloat2 (#PCDATA)>
<!ELEMENT FreeFloat3 (#PCDATA)>
<!ELEMENT TotalFloat1 (#PCDATA)>
<!ELEMENT TotalFloat2 (#PCDATA)>
<!ELEMENT TotalFloat3 (#PCDATA)>
<!ELEMENT Slip1 (#PCDATA)>
<!ELEMENT Slip2 (#PCDATA)>
<!ELEMENT Slip3 (#PCDATA)>
<!ELEMENT Critical1 (#PCDATA)>
<!ELEMENT Critical2 (#PCDATA)>
<!ELEMENT Critical3 (#PCDATA)>
<!--
TaskLink
-->
<!ELEMENT TaskLinks (TaskLink+)>
<!ELEMENT TaskLink (
LinkVal,
TaskLevel?,
TaskSeq?
)>
<!--
t_id refers to an existing Task ('t1', 't2', etc.)
st_id refers to an existing Structure ('st1', 'st2', etc.)
-->
<!ATTLIST TaskLink 
t_id  IDREF #REQUIRED
st_id IDREF #REQUIRED
>
<!--
(Can be calculated after import by schedule viewer)
-->
<!ELEMENT TaskLevel (#PCDATA)>
<!ELEMENT TaskSeq (#PCDATA)>
<!--
TaskPred
-->
<!ELEMENT TaskPreds (TaskPred+)>
<!ELEMENT TaskPred (
LagVal?,
LagType?
)>
<!--
t_id refers to an existing Task ('t1', 't2', etc.)
pt_id refers to an existing (predecessor) Task ('t1', 't2', etc.)
-->
<!ATTLIST TaskPred
t_id  IDREF #REQUIRED
pt_id IDREF #REQUIRED
>
<!--
Enter LagVal as text in format expected by scheduling system
-->
<!ELEMENT LagVal (#PCDATA)>
<!--
LagType is one of "FS", "SS", "SF", "FF"
-->
<!ELEMENT LagType (#PCDATA)>
<!--
User
-->
<!ELEMENT Users (User+)>
<!ELEMENT User (
UserName,
UserCode?,
Password?,
Prefilter?,
GroupID?,
OSAuth?
)>
<!--
Prefix ID attribute with 'usr' - e.g. usr1, usr2, etc.
-->
<!ATTLIST User id ID #REQUIRED>
<!ELEMENT UserName (#PCDATA)>
<!ELEMENT UserCode (#PCDATA)>
<!ELEMENT Password (#PCDATA)>
<!ELEMENT Prefilter (#PCDATA)>
<!--
Must refer to an existing User record (usr1, usr2, etc.) 
To indicate a user group, set the group ID to the user ID. 
-->
<!ELEMENT GroupID EMPTY>
<!ATTLIST GroupID usr_id IDREF #REQUIRED>
<!ELEMENT OSAuth (#PCDATA)>
<!--
UserContract
-->
<!ELEMENT UserContracts (UserContract+)>
<!ELEMENT UserContract (AccessFlag)>
<!--
cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)
usr_id must refer to an existing User ('usr1', 'usr2', etc.)
-->
<!ATTLIST UserContract 
cc_id IDREF #REQUIRED
usr_id IDREF #REQUIRED
>
<!--
AccessFlag: 'R' (Read) 'W' (Write), or 'N' (None)
-->
<!ELEMENT AccessFlag (#PCDATA)>
<!--
Beginning of CFSR data elements
-->
<!ELEMENT FundTypes (FundType+)>
<!ELEMENT FundType (
Source,
Approp,
Fy,
FundTypeParentID?,
ElemDesc?,
NumChild?,
ElemLevel?,
ElemSeq?,
ElemHier?
)>
<!--
Prefix ID attribute with 'ft' - e.g. ft1, ft2, etc.
cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)
-->
<!ATTLIST FundType
id ID #REQUIRED
cc_id IDREF #REQUIRED
>
<!ELEMENT ElemID (#PCDATA)>
<!ELEMENT ContrID (#PCDATA)>
<!--
<!ELEMENT Source (#PCDATA)>
<!--
If the FundType element does not have an Appropriation, the value provided for this element must be '*' i.e., <Approp>*</Approp>
-->
<!ELEMENT Approp (#PCDATA)>
<!--
If the FundType does not have an Fiscal Year, the value provided for this element must be '*' i.e., <Fy>*</Fy>
-->
<!ELEMENT Fy (#PCDATA)>
<!--
FundTypeParentID is required except for Level 1 elements.
ft_id must refer to a previously defined element.
-->
<!ELEMENT FundTypeParentID EMPTY>
<!ATTLIST FundTypeParentID ft_id IDREF #REQUIRED>
<!ELEMENT ClinTypes (ClinType+)>
<!ELEMENT ClinType (
Clin
)>
<!--
Prefix ID attribute with 'cl' - e.g. cl1, cl2, etc.
cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)
-->
<!ATTLIST ClinType
id ID #REQUIRED
cc_id IDREF #REQUIRED
>
<!ELEMENT Clin (#PCDATA)>
<!ELEMENT CfsrBlock12Types (CfsrBlock12Type+)>
<!ELEMENT CfsrBlock12Type(
Type
)>
<!--
Prefix ID attribute with 'tp' - e.g. tp1, tp2, etc.
-->
<!ATTLIST CfsrBlock12Type
id ID #REQUIRED
>
<!ELEMENT Type (#PCDATA)>
<!ELEMENT Block11s (Block11+)>
<!ELEMENT Block11 (
AuthFund?,
AccruExp?,
Definit?,
NotDefinit?,
NotAuth?,
OtherWork?,
CarryOver?
)>
<!--
ft_id must refer to an existing FundType ('ft1', 'ft2', etc.)
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
cl_id must refer to an existing ClinType ('cl1', 'cl2', etc.)
-->
<!ATTLIST Block11
ft_id IDREF #REQUIRED
cd_id IDREF #REQUIRED
cl_id IDREF #REQUIRED
>
<!ELEMENT AuthFund (#PCDATA)>
<!ELEMENT AccruExp (#PCDATA)>
<!ELEMENT Definit (#PCDATA)>
<!ELEMENT NotDefinit (#PCDATA)>
<!ELEMENT NotAuth (#PCDATA)>
<!ELEMENT OtherWork (#PCDATA)>
<!ELEMENT CarryOver (#PCDATA)>
<!ELEMENT Block12s (Block12+)>
<!ELEMENT Block12(
ActToDate?,
Period1?,
Period2?,
Period3?,
Period4?,
Period5?,
Period6?,
Period7?,
Period8?,
Period9?,
Period10?,
Period11?,
Period12?,
Period13?,
Period14?,
AtComplete?
)>
<!--
ft_id must refer to an existing FundType ('ft1', 'ft2', etc.
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
tp_id must refer to an existing CfsrBlock12Type ('tp1', 'tp2', etc.
-->
<!ATTLIST Block12
ft_id IDREF #REQUIRED
cd_id IDREF #REQUIRED
tp_id IDREF #REQUIRED
>
<!ELEMENT ActToDate (#PCDATA)>
<!ELEMENT Period1 (#PCDATA)>
<!ELEMENT Period2 (#PCDATA)>
<!ELEMENT Period3 (#PCDATA)>
<!ELEMENT Period4 (#PCDATA)>
<!ELEMENT Period5 (#PCDATA)>
<!ELEMENT Period6 (#PCDATA)>
<!ELEMENT Period7 (#PCDATA)>
<!ELEMENT Period8 (#PCDATA)>
<!ELEMENT Period9 (#PCDATA)>
<!ELEMENT Period10 (#PCDATA)>
<!ELEMENT Period11 (#PCDATA)>
<!ELEMENT Period12 (#PCDATA)>
<!ELEMENT Period13 (#PCDATA)>
<!ELEMENT Period14 (#PCDATA)>
<!ELEMENT AtComplete (#PCDATA)>
<!ELEMENT CfsrThresholds (CfsrThreshold+)>
<!ELEMENT CfsrThreshold (
ThreshDesc,
TpDolVar?,
TpPerVar?,
TpAndOr?,
NdDolVar?,
NdPerVar?,
NdAndOr?,
AeDolVar?,
AePerVar?,
AeAndOr?,
AcDolVar?,
AcPerVar?,
AcAndOr?
)>
<!--
Prefix ID attribute with 'ct' - e.g. ct1, ct2, etc.
-->
<!ATTLIST CfsrThreshold
id ID #REQUIRED
>
<!--
xxAndOr: 'A' or 'O',
AND = exceeds Cost AND Sch thresh; OR = Cost OR Sch thresh
-->
<!ELEMENT TpDolVar (#PCDATA)>
<!ELEMENT TpPerVar (#PCDATA)>
<!ELEMENT TpAndOr (#PCDATA)>
<!ELEMENT NdDolVar (#PCDATA)>
<!ELEMENT NdPerVar (#PCDATA)>
<!ELEMENT NdAndOr (#PCDATA)>
<!ELEMENT AeDolVar (#PCDATA)>
<!ELEMENT AePerVar (#PCDATA)>
<!ELEMENT AeAndOr (#PCDATA)>
<!ELEMENT AcDolVar (#PCDATA)>
<!ELEMENT AcPerVar (#PCDATA)>
<!ELEMENT AcAndOr (#PCDATA)>
<!ELEMENT Cfsrs (Cfsr+)>
<!ELEMENT Cfsr (
LastPeriodDate?,
Per1?,
Per2?,
Per3?,
Per4?,
Per5?,
Per6?,
Per7?,
Per8?,
Per9?,
Per10?,
Per11?,
Per12?,
Per13?,
Per14?,
AtComplete
)>?
<!--
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
ct_id must refer to an existing CfsrThreshold ('ct1', 'ct2', etc.)
->
<!ATTLIST Cfsr
cd_id IDREF #REQUIRED
ct_id IDREF #REQUIRED
>
<!ELEMENT LastPeriodDate (#PCDATA)>
<!ELEMENT Per5 (#PCDATA)>
<!ELEMENT Per6 (#PCDATA)>
<!ELEMENT Per7 (#PCDATA)>
<!ELEMENT Per8 (#PCDATA)>
<!ELEMENT Per9 (#PCDATA)>
<!ELEMENT Per10 (#PCDATA)>
<!ELEMENT Per11 (#PCDATA)>
<!ELEMENT Per12 (#PCDATA)>
<!ELEMENT Per13 (#PCDATA)>
<!ELEMENT Per14 (#PCDATA)>
<!ELEMENT CfsrNarrs (CfsrNarr+)>
<!ELEMENT CfsrNarr (#PCDATA)>
<!--
ft_id must refer to an existing FundType ('ft1', 'ft2', etc.)
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
-->
<!ATTLIST CfsrNarr
ft_id IDREF #REQUIRED
cd_id IDREF #REQUIRED
<!--
OmbMilestones
-->
<!ELEMENT OmbMilestones (OmbMilestone+)>
<!ELEMENT OmbMilestone (
MilesDesc,
BaselineStart?,
BaselineFinish?,
BaselineDur?,
PlannedCost?,
FundingAgency?,
ActualStart?,
ActualFinish?,
ActualPctCmp?,
ActualCost?
)>
<!--
cd_id must refer to an existing Period ('cd1', 'cd2', etc.)
-->
<!ATTLIST OmbMilestone cd_id IDREF #REQUIRED>
<!ELEMENT BaselineDur (#PCDATA)>
<!ELEMENT PlannedCost (#PCDATA)>
<!ELEMENT FundingAgency (#PCDATA)>
<!ELEMENT ActualPctCmp (#PCDATA)>
<!ELEMENT ActualCost (#PCDATA)>
<!--
ElemLink
-->
<!ELEMENT ElemLinks (ElemLink+)>
<!ELEMENT ElemLink EMPTY>
<!--
ce_id must refer to an existing Element ('ce1', 'ce2', etc.)
st_id must refer to an existing Structure ('st1', 'st2', etc.)
tl_id must exist to an existing Element ('ce1', 'ce2', etc.)
Additional notes:
-The element referred to by ce_id should be a member of the WBS structure.
-The structure referred to by st_id should NOT be the WBS or Indirect structure.
-The element referred to by tl_id should be a member of the structure identified by st_id.
-->
<!ATTLIST ElemLink
ce_id IDREF #REQUIRED
st_id IDREF #REQUIRED
tl_id IDREF #REQUIRED